package com.woniuxy.mq01;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @Author author
 * @Create 2023-09-28 10:35
 */
public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //服务器IP地址
        factory.setHost("192.168.80.85");
        factory.setUsername("guest");
        factory.setPassword("guest");
        factory.setVirtualHost("/");
        //连接对象
        try (Connection connection = factory.newConnection();
             //信道对象
             Channel channel = connection.createChannel()) {
            //定义队列名
            String queue = "queuehelloworld";
            //声明队列
            //String queue, 队列名
            // boolean durable, 持久化队列，true服务器重启以后,队列不会删除
            // boolean exclusive,独占队列，只有当前connection和channel才能和队列操作,一般都用false
            // boolean autoDelete,自动删除，一般配合exclusive使用，一般使用false
            //Map<String, Object> arguments,队列附件属性
            channel.queueDeclare(queue, true, false, false, null);
            //发送的消息
            String message = "email---";
            //发送消息
            //String exchange,  消息进入的交换机，helloworld模式使用的是默认交换机,写"",不能写null
            // String routingKey, 默认交换机的路由的名字就是队列名字
            // AMQP.BasicProperties props, 消息附件属性
            // byte[] body,消息题
            for (int i=1;i<=10;i++) {
                channel.basicPublish("", queue, null, ((message)+i).getBytes());
            }
            System.out.println("发送成功");
        }
    }
}
